home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 19 / Mac Magazin and MacEasy Magazine CD - Issue 19.iso / Wissenschaft & Technik / Open Prolog / External Predicates… / Sources / prlxDefinitions.p < prev    next >
Text File  |  1995-06-08  |  9KB  |  317 lines

  1. UNIT prlxDefinitions;
  2.  
  3.   INTERFACE
  4.  
  5.     CONST
  6.       {outcome codes, based on ISO error conditions and a few more…}
  7.       noErrorSucceed = 0;
  8.       noErrorFail = 1;
  9.       systemError = 2;
  10.       calculationError = 3;
  11.       databaseError = 4;
  12.       evaluationError = 5;
  13.       implementationError = 6;
  14.       instantiationError = 7;
  15.       ioControlError = 8;
  16.       ioEndOfFileError = 9;
  17.       ioFormattingError = 10;
  18.       operatorError = 11;
  19.       overflowError = 12;
  20.       unclassifiedError = 13; {this is not part of the ISO definition}
  21.       syntaxError = 14;
  22.       typeError = 15;
  23.       undefinedPredicateError = 16;
  24.       undefinedValueError = 17;
  25.       underflowError = 18;
  26.       zeroDivideError = 19;
  27.       domainError = 20;
  28.       userInterrupt = 21; {this is not part of the ISO definition}
  29.       notAnErrorCode = - 1;
  30.  
  31.       {tags}
  32.       variableTag = 0;
  33.       atomTag = 24;
  34.       integerTag = 32;
  35.       structureTag = 40;
  36.       realTag = 52;
  37.       {commands}
  38.       getPRLXInfo = 1;
  39.       initialisePredicate = 2;
  40.       callPredicate = 3;
  41.       closePredicate = 4;
  42.       getEventsVersion = 5;
  43.  
  44.       {callback commands}
  45.       getTermInfo = 1;
  46.       getSubTerm = 2;
  47.       newTerm = 3;
  48.       unifyTerms = 4;
  49.       unifyToFunctor = 5;
  50.       unifyToInteger = 6;
  51.       identicalTerms = 7;
  52.       listArgumentToString = 8;
  53.       stringToListArgument = 9;
  54.       writeError = 10;
  55.       writeString = 11;
  56.       writelnString = 12;
  57.       drawALRT = 13;
  58.       pushDisplayString = 14;
  59.       popDisplayString = 15;
  60.       getEventRecord = 16;
  61.       doMyModalDialog = 17;
  62.       sendEvents = 18; {ask Open Prolog to send raw events}
  63.       inForeground = 19; {put 1 in callbackdata[1] if in foreground mode?}
  64.       startNotification = 20; {put up a notification}
  65.       stopNotification = 21;
  66.       getFreeTerm = 22; {get the index number of a new unbound local variable in
  67.                          callbackdata[1]}
  68.       getPredicateNameAndArity = 23;
  69.       getHomeResFileID = 24;
  70.  
  71.       registerAnIOHandler = 25;
  72.       registerAnIOObject = 26;
  73.       deRegisterAnIOObject = 27;
  74.       getAnIOObjectInfo = 28;
  75.       getAnIOObjectReference = 29;
  76.       checkIOObjectRegisterIsFull = 30;
  77.       getIOObjectCount = 31;
  78.       getIndexedIOObjectReference = 32;
  79.  
  80.       eventsVersion = 5;
  81.  
  82.       eventRePositioned = 1;
  83.       eventGoAwayMouse = 2;
  84.       eventUpdate = 3;
  85.       eventActivate = 4;
  86.       eventDeactivate = 5;
  87.       eventMenuClick = 6;
  88.       eventMenuSelect = 7;
  89.       eventMenuKey = 8;
  90.       eventKey = 9;
  91.       eventSelect = 10;
  92.       eventClose = 11;
  93.       eventSave = 12;
  94.       eventSaveAs = 13;
  95.       eventQuit = 14;
  96.       eventShutdown = 15;
  97.       eventRestart = 16;
  98.       eventRevert = 17;
  99.       eventCalculateMenus = 18;
  100.       eventDisplayChar = 19;
  101.       eventDisplayText = 20;
  102.       eventDisplayFlush = 21;
  103.       eventDisplaySelection = 22;
  104.       eventContentClick = 23;
  105.       eventReadTerm = 24;
  106.       eventInitialise = 25;
  107.       eventSee = 26;
  108.       eventTell = 27;
  109.       eventSeeing = 28;
  110.       eventTelling = 29;
  111.       eventSeen = 30;
  112.       eventTold = 31;
  113.       eventGetCursorInfo = 32;
  114.       eventIdle = 33;
  115.       eventSuspend = 34;
  116.       eventResume = 35;
  117.       eventCloseAll = 36;
  118.       eventStartup = 37;
  119.       eventKissByeBye = 38;
  120.       eventGetEntry = 39;
  121.       eventItemHit = 40;
  122.       eventFindString = 41;
  123.       eventReplaceString = 42;
  124.       eventGetGrowLimit = 43;
  125.       eventSetWindowSize = 44;
  126.       eventWindowCommand = 45;
  127.       eventGetFPos = 46;
  128.       eventDoNothing = 47;
  129.       eventFileCommand = 48;
  130.       eventDoZoom = 49;
  131.       eventTakeRawEvent = 50;
  132.  
  133.       debugStepped = 51;
  134.       debugStep = 52;
  135.  
  136.       wcGetNumber = 1;
  137.       wcGetWindow = 2;
  138.       wcGetSelection = 3;
  139.       wcSetSelection = 4;
  140.       wcSetOutline = 5;
  141.       wcClearOutline = 6;
  142.       wcClearAllOutlines = 7;
  143.       wcSetAsOutput = 8;
  144.       wcGetIndex = 9;
  145.       wcGetStartingPoint = 10;
  146.       wcSetStartingPoint = 11;
  147.       wcPurgeInput = 12;
  148.       wcOpenFileWindow = 13;
  149.       wcOpenNewWindow = 14;
  150.       wcGetFontInfo = 15;
  151.       wcSetInput = 16;
  152.       wcBufferSize = 17;
  153.       wcGetWindowKind = 18;
  154.  
  155.       messageOK = 0;
  156.       messageQuit = 1;
  157.       messageReset = 2;
  158.       messageExecute = 3;
  159.       messageFail = 4;
  160.       messageKey = 5;
  161.       messageClick = 6;
  162.       messageShutdown = 7;
  163.       messageRestart = 8;
  164.       messageInterrupt = 9;
  165.       messageEntry = 10;
  166.       messageCancel = 11;
  167.       messageNoReply = 12;
  168.  
  169.       messageError = - 32768;
  170.  
  171.       rtOK = 0;
  172.  
  173.       rtError = - 32768;
  174.       rtIncomplete = - 32767;
  175.       rtNumberRangeError = - 32766;
  176.       rtQuotedAtomTooLong = - 32765;
  177.       rtStringTooLong = - 32764;
  178.       rtAtomTooLong = - 32763;
  179.       rtVariableNameTooLong = - 32762;
  180.       rtUnexpectedEOF = - 32761;
  181.       rtUnexpectedCharacter = - 32760;
  182.       rtUnificationFailure = - 32759;
  183.       rtOperatorError = - 32758;
  184.       rtCantFindFile = - 32757;
  185.       rtFileIsAFolder = - 32756;
  186.       rtFileIsWrongTypeForReading = - 32755;
  187.       rtFileIsAlreadyOpen = - 32754;
  188.       rtDiskIsFull = - 32753;
  189.       rtDiskIsLocked = - 32752;
  190.       rtFileIsLocked = - 32751;
  191.       rtFileIsReadOnly = - 32750;
  192.       rtFileIOProblem = - 32749;
  193.       rtCantGetEnoughMemory = - 32748;
  194.       rtAttemptToReadPastEof = - 32747;
  195.       rtSpaceError = - 32746;
  196.       rtBufferTooSmall = - 32745;
  197.       rtNonSequentialFileAccess = - 32744;
  198.       rtCantOpenForReading = - 32743;
  199.       rtCantOpenForWriting = - 32742;
  200.       rtFileTableFull = - 32741;
  201.       rtFileIsWrongTypeForWriting = - 32740;
  202.       rtDirectoryNotFound = - 32739;
  203.       rtFileAlreadyExists = - 32738;
  204.       rtNoSuchVolume = - 32737;
  205.       rtOutputStringTooBig = - 32736;
  206.       rtNoToken = - 32735;
  207.  
  208.       appleMenu = 128;
  209.       fileMenu = 129;
  210.       editMenu = 130;
  211.       findMenu = 131;
  212.       windowMenu = 132;
  213.       controlMenu = 133;
  214.       submenuNumber = 170;
  215.       publishingMenu = submenuNumber + 0;
  216.       openMenu = submenuNumber + 1;
  217.       consultMenu = submenuNumber + 2;
  218.       reconsultMenu = submenuNumber + 3;
  219.       formatMenu = submenuNumber + 4;
  220.       fontMenu = submenuNumber + 5;
  221.       sizeMenu = submenuNumber + 6;
  222.       newItem = 1;
  223.       openItem = 2;
  224.       openSelectedFileItem = 3;
  225.       closeItem = 5;
  226.       saveItem = 6;
  227.       saveAsItem = 7;
  228.       revertItem = 8;
  229.       pageSetupItem = 9;
  230.       printItem = 10;
  231.       printSelectionItem = 11;
  232.       quitItem = 13;
  233.  
  234.       undoItem = 1;
  235.  
  236.       cutItem = 3;
  237.       copyItem = 4;
  238.       pasteItem = 5;
  239.       clearItem = 6;
  240.  
  241.       selectAllItem = 8;
  242.  
  243.       publishingMenuItem = 10;
  244.  
  245.       autoIndentItem = 1;
  246.       fontItem = 3;
  247.       fontSizeItem = 4;
  248.  
  249.       replaceDialogId = 132;
  250.       findDialogId = 133;
  251.  
  252.       findItem = 1;
  253.       findSameItem = 2;
  254.       findSelectionItem = 3;
  255.       displaySelectionItem = 4;
  256.       replaceItem = 6;
  257.       replaceSelectionItem = 7;
  258.       selectInputWindowItem = 9;
  259.  
  260.       createPublisherItem = 1;
  261.       subscribeToItem = 2;
  262.       publisherOptionsItem = 3;
  263.  
  264.       openFileItem = 1;
  265.       openSelectedFileSubItem = 2;
  266.  
  267.       consultFileItem = 1;
  268.       consultSelectedFileItem = 2;
  269.       consultWindowItem = 3;
  270.       consultSelectionItem = 4;
  271.  
  272.     TYPE
  273.  
  274.       {io stream linkage}
  275.  
  276.       ioOPCommandType = (ioOPGetByte, ioOPGetChar, ioOPPutByte, ioOPPutChar,
  277.                          ioOPPutText, ioOPFlush,ioOPClose,ioOPOpen,
  278.                                                  ioOPSetPosition,ioOPSetSize,
  279.                                                  ioOPGetPosition,ioOPGetSize,
  280.                                                  ioOPGetProperties,ioOPSetProperties
  281.                                                  );
  282.       ioOPPtr = ^ioOPParameterList;
  283.       ioOPParameterList = RECORD
  284.                             ioOPResult: osErr;
  285.                             ioOPData: longint;
  286.                             ioOPCommand: ioOPCommandType;
  287.                             p1, p2: longint;
  288.                           END;
  289.  
  290.       prlxRecord = RECORD
  291.                      request, id: integer;
  292.                      data: ARRAY [1..4] OF longint;
  293.                      callbackRequest: integer;
  294.                      callbackData: ARRAY [1..4] OF longint;
  295.                      s: str255;
  296.                      entryPoint: procPtr;
  297.                      successful: boolean;
  298.                      determinate: boolean;
  299.                      outcome: integer;
  300.                      permanentData: longint;
  301.                      callbackAvailable: boolean;
  302.                      prlxHandleFlags: signedByte;
  303.                      prlxHandle: ^ProcPtr;
  304.                      prlxFunctor: longint; {private - reserved}
  305.                    END;
  306.       prlxPtr = ^prlxRecord;
  307.  
  308.       termIndex = 0..8192;
  309.  
  310.       atomReference = longint;
  311.  
  312.     PROCEDURE callback(address: procPtr);
  313.       INLINE $205F, $4E90;
  314.  
  315.   IMPLEMENTATION
  316. END.
  317.